#ifndef XM_TCPCONN_HH
#define XM_TCPCONN_HH

#include <memory>
#include <string>
#include <atomic>

#include "XM_noncopyable.hh"
#include "XM_InetAddr.hh"
#include "XM_Callbacks.hh"
#include "XM_Buffer.hh"
#include "XM_Timestamp.hh"
#include "pch.hh"

XM_NAMESPACE_BEGIN

struct Channel;
struct EvLoop;
struct Socket;

struct TcpConn : private XM_noncopyable,
                 public std::enable_shared_from_this<TcpConn>
{
    TcpConn(EvLoop* lop, const std::string& nameArg,
            int sockfd, const InetAddr& localAddr,
            const InetAddr& peerAddr);
    ~TcpConn();

    EvLoop* getLoop() const { return loop__; }

private:
    
};

XM_NAMESPACE_END

#endif // header file protect